Security is an important issue within the development of integrated circuits. Components and information within these integrated circuits require some way to provide access protection to protect the integrity of these systems. A security system of some form is usually implemented to prevent unauthorized access to particular locations or components of these integrated circuits.
Several different methods have been used in the prior art to protect against unauthorized access to a system. One such methodology is the insertion of unimplemented op-code instructions in the application code. These are inserted in places in the code where the user is not expected to execute. When these op codes are executed, an illegal instruction exception is taken.
Another prior art methodology is to separate the memory space into sections that may be accessed, either read or written, by user program, and those that will cause an exception to occur when accessed. This latter methodology is a logical extension of the early multi-user/multi-programming techniques wherein multiple users were noted in a single memory space, and protections were put in place to prohibit the user from accessing the memory space of other users, or of the operating system itself.
These prior art methods have several disadvantages when used to protect against illegal access. One such problem is that hackers can overwrite these illegal OPcodes. Secondly, the prior art limits the illegal OPcode protection to program memory only. Thirdly, the number of regions that can be protected is by necessity small, since each such region typically requires a comparator. This becomes especially critical for lower cost applications where the cost of circuitry requires that the number of comparators be minimized. One disadvantage of having a small number of protected regions, is that it is relatively easy for a hacker to identify these regions and to program around them.
It would thus be advantageous to have a methodology that provides a large number of protected regions in a potentially non-uniform pattern through use of minimum circuitry to maintain minimum cost.